package cn.piesat.scanning.service;

import cn.piesat.scanning.dto.DbDmsDatafileNearlineStorageDTO;

import java.util.List;

/**
 * 近线数据信息服务层接口方法定义
 * @author xhl
 */
public interface DbDmsDatafileNearlineStorageService {

    /**
     * 添加近线数据至数据库
     * @param dto 近线数据实体
     */
    void addEntity(DbDmsDatafileNearlineStorageDTO dto);

    /**
     * 根据文件名称正则匹配和时间范围查询
     * @param date 时间
     * @param fileNamePattern 文件名称正则
     * @return
     */
    List<DbDmsDatafileNearlineStorageDTO> regexAndDateRangeTime(String date, String fileNamePattern);

    void deleteOne(DbDmsDatafileNearlineStorageDTO dto);

    /**
     * 根据传入的文件名称，查找存在于近线表中的源数据信息
     * @param fileNameList
     * @return
     */
    List<DbDmsDatafileNearlineStorageDTO> findMetadataFileNameIn(List<String> fileNameList);

    /**
     * 根据传入的文件名称，查找存在于近线表中的结果数据信息
     * @param fileNameList
     * @return
     */
    List<DbDmsDatafileNearlineStorageDTO> findResultDataFileNameIn(List<String> fileNameList);

    List<DbDmsDatafileNearlineStorageDTO> findBeforeDayAndLevelListData(Integer day, List<String> levelList);

    List<DbDmsDatafileNearlineStorageDTO> findAfterDayAndLevelListData(Integer day, List<String> levelList);
}
